<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
    "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
    "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">

<module name="Checker">
    <!--module name="NewlineAtEndOfFile"/-->
    <module name="FileLength"/>
    <module name="FileTabCharacter"/>

    <!-- Trailing spaces -->
    <module name="RegexpSingleline">
        <property name="format" value="\s+$"/>
        <property name="message" value="Line has trailing spaces."/>
    </module>

    <module name="TreeWalker">
        <property name="cacheFile" value="${checkstyle.cache.file}"/>

        <!-- Checks for Javadoc comments.                     -->
        <!-- See http://checkstyle.sf.net/config_javadoc.html -->
        <!--module name="JavadocMethod"/-->
        <!--module name="JavadocType"/-->
        <!--module name="JavadocVariable"/-->
        <!--module name="JavadocStyle"/-->


        <!-- Checks for Naming Conventions.                  -->
        <!-- See http://checkstyle.sf.net/config_naming.html -->
        <module name="ConstantName"/>
        <module name="LocalFinalVariableName"/>
        <module name="LocalVariableName"/>
        <module name="MemberName"/>
        <module name="MethodName"/>
        <module name="PackageName"/>
        <module name="ParameterName"/>
        <module name="StaticVariableName"/>
        <module name="TypeName"/>


        <!-- Checks for imports                              -->
        <!-- See http://checkstyle.sf.net/config_import.html -->
        <module name="AvoidStarImport"/>
        <module name="IllegalImport"/> <!-- defaults to sun.* packages -->
        <module name="RedundantImport"/>
        <module name="UnusedImports"/>


        <!-- Checks for Size Violations.                    -->
        <!-- See http://checkstyle.sf.net/config_sizes.html -->
        <!--module name="LineLength"/-->
        <!--module name="MethodLength"/-->
        <!--module name="ParameterNumber"/-->


        <!-- Checks for whitespace                               -->
        <!-- See http://checkstyle.sf.net/config_whitespace.html -->
        <!--module name="EmptyForIteratorPad"/-->
        <!--module name="MethodParamPad"/-->
        <!--module name="NoWhitespaceAfter"/-->
        <!--module name="NoWhitespaceBefore"/-->
        <!--module name="OperatorWrap"/-->
        <!--module name="ParenPad"/-->
        <!--module name="TypecastParenPad"/-->
        <!--module name="WhitespaceAfter"/-->
        <!--module name="WhitespaceAround"/-->


        <!-- Modifier Checks                                    -->
        <!-- See http://checkstyle.sf.net/config_modifiers.html -->
        <!--module name="ModifierOrder"/-->
        <!--module name="RedundantModifier"/-->


        <!-- Checks for blocks. You know, those {}'s         -->
        <!-- See http://checkstyle.sf.net/config_blocks.html -->
        <!--module name="AvoidNestedBlocks"/-->
        <!--module name="EmptyBlock"/-->
        <!--module name="LeftCurly"/-->
        <!--module name="NeedBraces"/-->
        <!--module name="RightCurly"/-->


        <!-- Checks for common coding problems               -->
        <!-- See http://checkstyle.sf.net/config_coding.html -->
        <!--module name="AvoidInlineConditionals"/-->
        <!--module name="DoubleCheckedLocking"/-->    <!-- MY FAVOURITE -->
        <!--module name="EmptyStatement"/-->
        <!--module name="EqualsHashCode"/-->
        <!--module name="HiddenField"/-->
        <!--module name="IllegalInstantiation"/-->
        <!--module name="InnerAssignment"/-->
        <!--module name="MagicNumber"/-->
        <!--module name="MissingSwitchDefault"/-->
        <!--module name="RedundantThrows"/-->
        <!--module name="SimplifyBooleanExpression"/-->
        <!--module name="SimplifyBooleanReturn"/-->

        <!-- Checks for class design                         -->
        <!-- See http://checkstyle.sf.net/config_design.html -->
        <!--module name="DesignForExtension"/-->
        <!--module name="FinalClass"/-->
        <!--module name="HideUtilityClassConstructor"/-->
        <!--module name="InterfaceIsType"/-->
        <!--module name="VisibilityModifier"/-->


        <!-- Miscellaneous other checks.                   -->
        <!-- See http://checkstyle.sf.net/config_misc.html -->
        <!--module name="ArrayTypeStyle"/-->
        <!--module name="FinalParameters"/-->
        <!--module name="TodoComment"/-->
        <!--module name="UpperEll"/-->
    </module>
</module>
